This document will be steadily extended and updated to reflect new functionality of the API while constantly ensuring backwards compatibility with previous versions.
We follow Semantic Versioning. You can see all versions in our changelog.
This operation gives its consumers access to our formative feedback. The bit that is supplied in the request is required for context and shall be included on every request. This way we avoid any synchronization problems that otherwise will occur, where feedback was returned based on some outdated state of the bit.
For identifying inputs belonging to the same bit, the
feedbackId
field on the
FeedbackEngine
object itself is of
importance. This field shall represent the identifier of
the bit s.t. existing feedback can be re-used. When this
field remains the same across requests but other bit
fields change, then for some existing bit t the
fields will be updated and the feedback will be generated
based on previously seen inputs and created feedback
belonging to that bit b (*
). On the
other side, when the value for the
feedbackId
field was not yet seen by the
system, a new bit b' will be created.
Consequently, there are no existing inputs and thus also
no feedback assigned that belong to the bit
b' yet. Therefore, consider only changing the
identifier when you wish to create a brand new bit.
(*
) This does only hold as long as the types
are the same. When for some request the bit type is
different to what already exists due to previous requests,
then an error will be returned.
Further, as of now, bits are always created within the default tenant. There is no way currently to create a bit in a different tenant through the API.
Important note on bit updates: each time a bit gets changed on the consumer's system, one should assume those changes impact the feedback. Hence, we advise in such situations to test the feedback and create new inputs, as well as potentially re-assign existing feedback for previous inputs, in order to adjust the feedback to those changes. Without those measures, generated feedback may not be accurate anymore.
type required | string
Defines the type of bit. Can be used by deserialization tools to instanciate the correct sub-type. |
format required | string
Allowed values: |
required | object
|
object
| |
instruction required | string
|
sampleSolution required | string
A sample answer to the problem statement that is considered being correct. |
required | object
An answer input field of the problem statement. |
object
A media file of the task. |
{- "type":
"essay",
- "format":
"string",
- "feedbackEngine":
{
- "feedbackId":
"string",
- "tenantId":
0,
- "userId":
"string",
- "timeOnTask":
0
}, - "meta":
{
- "language":
"en",
- "learningLanguage":
"en",
- "subject":
"string"
}, - "instruction":
"string",
- "sampleSolution":
"string",
- "answer":
{
- "text":
"string"
}, - "resource":
{
- "type":
"audio",
- "audio":
{
- "format":
"mp3",
- "src":
"string"
}
}
}
{- "type":
"essay",
- "format":
"string",
- "feedbackEngine":
{
- "feedbackId":
"string",
- "tenantId":
0,
- "userId":
"string",
- "timeOnTask":
0
}, - "meta":
{
- "language":
"en",
- "learningLanguage":
"en",
- "subject":
"string"
}, - "instruction":
"string",
- "feedback":
[
- {
- "correctness":
"CORRECT",
- "topic":
{
- "name":
"string"
}, - "message":
"string",
- "context":
[
- {
- "content":
"string",
- "offset":
0,
- "length":
0
}
]
}
], - "sampleSolution":
"string",
- "answer":
{
- "text":
"string"
}, - "resource":
{
- "type":
"audio",
- "audio":
{
- "format":
"mp3",
- "src":
"string"
}
}
}
Defines the type of bit. Can be used by deserialization tools to instanciate the correct sub-type.
"essay"
Type | Description |
---|---|
essay |
Bit with a free text input field. |
cloze |
Bit with a given text that contains blanks to be filled out. |
multiple-choice-text |
Defines a multiple choice quiz where the choices are embedded in a text. |
type required | string
Defines the type of bit. Can be used by deserialization tools to instanciate the correct sub-type. |
format required | string
Allowed values: |
required | object
|
object
| |
instruction required | string
|
required | Array of objects
(EssayBitFeedbackItem)
|
sampleSolution required | string
A sample answer to the problem statement that is considered being correct. |
required | object
An answer input field of the problem statement. |
object
A media file of the task. |
{- "type":
"essay",
- "format":
"string",
- "feedbackEngine":
{
- "feedbackId":
"string",
- "tenantId":
0,
- "userId":
"string",
- "timeOnTask":
0
}, - "meta":
{
- "language":
"en",
- "learningLanguage":
"en",
- "subject":
"string"
}, - "instruction":
"string",
- "feedback":
[
- {
- "correctness":
"CORRECT",
- "topic":
{
- "name":
"string"
}, - "message":
"string",
- "context":
[
- {
- "content":
"string",
- "offset":
0,
- "length":
0
}
]
}
], - "sampleSolution":
"string",
- "answer":
{
- "text":
"string"
}, - "resource":
{
- "type":
"audio",
- "audio":
{
- "format":
"mp3",
- "src":
"string"
}
}
}
message required | string
Holds more detailed information on the root cause of the problem. |
type required | string
Enum:
"REQUEST_SCHEMA_MALFORMED"
"INVALID_TOKEN"
"MISSING_PERMISSIONS"
"INVALID_PARAMETER"
"WRONG_TASK_TYPE_FOR_UPSERT"
"INTERNAL"
Errors the API may respond with. For further explanations check the error table. |
{- "message":
"computeFeedback.feedbackEngine.userId
must not be null.",
- "type":
"REQUEST_SCHEMA_MALFORMED"
}
The API returns the following custom errors.
Type | Description |
---|---|
REQUEST_SCHEMA_MALFORMED |
The request schema is malformed. The
message field includes further details on
what is wrong or missing. |
INVALID_TOKEN |
The provided bearer token is invalid. |
MISSING_PERMISSIONS |
The application does not have permissions for requesting this action. |
INVALID_PARAMETER |
Some parameter validation failed. The
message field includes further details on
what is wrong. |
WRONG_TASK_TYPE_FOR_UPSERT |
A bit with the specified ID already exists but does not match the bit type that is specified in the request. |
INTERNAL |
Internal Server error. The message field
includes an identifier which should be included when
contacting our support. |